E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα AΡΧΕΣ TΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος Γ' Bάσεις εδοµένων MIXAHΛ ΞENOΣ ρ Mηχανικός H/Y και Πληροφορικής HMHTPIOΣ XPIΣTO OYΛAKHΣ Kαθηγητής Tµήµατος Mηχανικών H/Y και Πληροφορικής Πανεπιστηµίου Πατρών ΠATPA 2000
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα APXEΣ TEXNOΛOΓIAΣ ΛOΓIΣMIKOY Τόµος Γ' Bάσεις εδοµένων Συγγραφή MIXAHΛ ΞENOΣ ρ Mηχανικός H/Y και Πληροφορικής HMHTPIOΣ XPIΣTO OYΛAKHΣ Kαθηγητής Tµήµατος Mηχανικών H/Y και Πληροφορικής Πανεπιστηµίου Πατρών Κριτική Ανάγνωση AΛEΞIOΣ EΛHΣ Aναπληρωτής Kαθηγητής Eπιστήµης Yπολογιστών, Polytechnic University NY Ακαδηµαϊκός Υπεύθυνος για την επιστηµονική επιµέλεια του τόµου ΠANAΓIΩTHΣ ΠINTEΛAΣ Καθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Πατρών Επιµέλεια στη µέθοδο της εκπαίδευσης από απόσταση HΛIAΣ ΣTAYPOΠOYΛOΣ Γλωσσική Επιµέλεια IΩANNHΣ ΘEOΦIΛAΣ Τεχνική Επιµέλεια ΕΣΠΙ ΕΚ ΟΤΙΚΗ Ε.Π.Ε. Καλλιτεχνική Επιµέλεια Σελιδοποίηση TYPORAMA Συντονισµός ανάπτυξης εκπαιδευτικού υλικού και γενική επιµέλεια των εκδόσεων ΟΜΑ Α ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ / 1997 2000 ISBN: 960 538 116 8 Kωδικός Έκδοσης: ΠΛH 11/3 Copyright 2000 για την Ελλάδα και όλο τον κόσµο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Οδός Παπαφλέσσα & Υψηλάντη, 26222 Πάτρα Τηλ: (0610) 314094, 314206 Φαξ: (0610) 317244 Σύµφωνα µε το Ν. 2121/1993, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.
ÂÚÈ fiìâó Πρόλογος... 9 K º π 1 EÈÛ ÁˆÁ Eισαγωγικές παρατηρήσεις... 11 1.1 Βασικοί ορισµοί... 13 1.1.1 εδοµένα και πληροφορία... 13 1.1.2 Βάση δεδοµένων... 15 1.1.3 Ιστορική αναδροµή... 17 1.2 Σύστηµα διαχείρισης βάσεων δεδοµένων... 20 1.2.1 ιαφορά βάσης δεδοµένων µε σύστηµα διαχείρισης βάσεων δεδοµένων... 21 1.2.2 οµή ενός συστήµατος διαχείρισης βάσεων δεδοµένων... 22 1.2.3 Tι παρέχει ένα σύστηµα διαχείρισης βάσεων δεδοµένων... 23 1.3 Τι παρέχει η βάση δεδοµένων... 27 1.3.1 Tαυτόχρονη προσπέλαση... 28 1.3.2 Ταχύτατη εξαγωγή απαντήσεων... 28 1.3.3 Eυελιξία... 29 1.3.4 Υψηλή ποιότητα δεδοµένων... 29 1.3.5 Αιτίες για µη χρήση βάσεων δεδοµένων... 30 1.4 Επίπεδα χρηστών... 32 1.4.1 ιαχειριστής συστήµατος... 32 1.4.2 Ιδιοκτήτης βάσης δεδοµένων... 33 1.4.3 Xρήστες υψηλής διαβάθµισης... 33 1.4.4 Xρήστες κατώτερης διαβάθµισης... 34 Σύνοψη... 35 Bιβλιογραφία για περαιτέρω µελέτη... 37 K º π 2 AÚ ÈÙÂÎÙÔÓÈÎ Î È º ÛÈÎ OÚÁ ÓˆÛË AÚ Â ˆÓ Eισαγωγικές παρατηρήσεις... 39
6 BA EI E OMENøN 2.1 Eπίπεδα Aρχιτεκτονικής... 41 2.1.1 Aρχιτεκτονική βάσεων δεδοµένων... 42 2.1.2 Το εξωτερικό επίπεδο... 42 2.1.3 Tο φυσικό επίπεδο... 43 2.1.4 Το επίπεδο αντίληψης... 44 2.2 Το φυσικό επίπεδο... 48 2.2.1 Τύποι δεδοµένων και πεδία... 48 2.2.2 Εγγραφές και αρχεία... 48 2.2.3 Μονάδες αποθήκευσης... 50 2.3 Oργάνωση αρχείων στο φυσικό επίπεδο... 52 2.3.1 Βασικές έννοιες της οργάνωσης αρχείων... 53 2.3.2 Κατακερµατισµός αρχείων... 55 2.3.3 εικτοδότηση αρχείων και κατάλογοι... 56 2.3.4 έντρα τύπου B και δέντρα τύπου B+... 59 Σύνοψη... 61 Bιβλιογραφία για περαιτέρω µελέτη... 61 K º π 3 ªÔÓÙÂÏÔappleÔ ËÛË Î È Ì Ù Â ÛË Eισαγωγικές παρατηρήσεις... 63 3.1 Το ιεραρχικό µοντέλο... 65 3.2 Το δικτυακό µοντέλο... 69 3.3 ιαγράµµατα σχέσεων Oντοτήτων... 71 3.3.1 Οντότητες και κατηγορήµατα... 72 3.3.2 Σχέσεις οντοτήτων... 76 3.3.3 οµικά στοιχεία των διαγραµµάτων... 80 3.3.4 Μοντελοποίηση µε διαγράµµατα σχέσεων οντοτήτων... 83 Σύνοψη... 91 Bιβλιογραφία για περαιτέρω µελέτη... 92 K º π 4 ÂÛÈ Î B ÛÂÈ Â ÔÌ ÓˆÓ Eισαγωγικές παρατηρήσεις... 93 4.1 Το σχεσιακό µοντέλο... 85
EPIEXOMENA 7 4.1.1 Βασικές έννοιες... 96 4.1.2 Ακεραιότητα δεδοµένων... 99 4.2 Σχεσιακή άλγεβρα... 104 4.2.1 Eπιλογή... 106 4.2.2 Προβολή... 106 4.2.3 Ένωση... 107 4.2.4 Tοµή... 107 4.2.5 ιάφορα... 107 4.2.6 Καρτεσιανό γινόµενο... 108 4.2.7 Σύνδεση... 108 4.2.8 Φυσική σύνδεση... 108 4.3 Σχεσιακός υπολογισµός... 109 Σύνοψη... 112 Bιβλιογραφία για περαιτέρω µελέτη... 112 K º π 5 H ÏÒÛÛ EÚˆÙ ÛÂˆÓ SQL Eισαγωγικές παρατηρήσεις... 113 5.1 Αρχές των γλωσσών ερωτήσεων... 115 5.2 Αναζήτηση δεδοµένων στην SQL... 117 5.2.1 Select From Where... 118 5.2.2 ιάταξη των αποτελεσµάτων... 125 5.2.3 Λοιπές εντολές στη συνθήκη... 127 5.2.4 Μετονοµασία πινάκων... 129 5.2.5 Εντολές συνόλων... 130 5.2.6 Σύνδεση πινάκων... 133 5.2.7 Αρίθµηση, µέγιστα ελάχιστα και οµαδοποίηση... 136 5.2.8 Γενική µορφή εντολής αναζήτησης... 137 5.3 Oρισµός, διαχείριση και παρουσίαση δεδοµένων στην SQL... 138 5.3.1 Create table και alter table... 138 5.3.2 Insert, delete, update... 140 5.3.3 Όψεις... 141 Σύνοψη... 141 Bιβλιογραφία για περαιτέρω µελέτη... 142
8 BA EI E OMENøN K º π 6 H ÏÒÛÛ EÚˆÙ ÛÂˆÓ QBE Eισαγωγικές παρατηρήσεις... 143 6.1 Η φιλοσοφία της QBE... 145 6.2 Συνθήκες... 148 6.3 Η QBE σε συνδυασµό µε γραφικό περιβάλλον... 152 Σύνοψη... 155 Bιβλιογραφία για περαιτέρω µελέτη... 156 K º π 7 ÓÙÈÎÂÈÌÂÓÔÛÙÚ Ê B ÛÂÈ Â ÔÌ ÓˆÓ Eισαγωγικές παρατηρήσεις... 157 7.1 Η φιλοσοφία των αντικειµενοστραφών βάσεων δεδοµένων... 159 7.2 Η αντικειµενοστραφής γλώσσα ερωτήσεων OQL και η πρότυπη γλώσσα ερωτήσεων SQL3... 161 Σύνοψη... 164 Bιβλιογραφία για περαιτέρω µελέτη... 164 K º π 8 AÓ ÎÂÊ Ï ˆÛË Î È EapplefiÌÂÓ B Ì Ù MÂÏ ÙË Eισαγωγικές παρατηρήσεις... 165 Συνέχεια µελέτης... 166 Eπίλογος... 169 Aπαντήσεις ασκήσεων αυτοαξιολόγησης... 171 Oδηγίες και κατευθύνσεις για τις δραστηριότητες... 205 Aλφαβητικό ευρετήριο όρων (ελληνικά αγγλικά)... 215 Aλφαβητικό ευρετήριο όρων (αγγλικά ελληνικά)... 217 Γλωσσάριο... 219